#============================================
# 「Sprint」冲刺技能 -  2020-9-13 00:08
# @author: Apprentice Zhang
#============================================

class_name Sprint
extends SkillBase

enum DIRECTION_TYPE {
	SELF_ANGLE,			# 自己面向的角度
	MOUSE_POS			# 鼠标位置的角度
}

export (DIRECTION_TYPE) var direction_mode = DIRECTION_TYPE.SELF_ANGLE	# 冲刺方向方式
export (float) var speed = 700									# 冲刺速度（每秒冲刺多少像素距离）


var _vel: Vector2		# 冲刺的向量



#============================================
#		Override
#============================================
func cast_skill():
	.cast_skill() 	#调用父级的这个方法，加上这个等于是对继承的父级脚本的方法进行了增强，不加这个等于是重写了这个方法
	match direction_mode:
		DIRECTION_TYPE.SELF_ANGLE:
			_vel = Vector2(1, 0).rotated(_get_host_node().rotation) * speed		# 朝自己面向的角度冲刺的向量
		DIRECTION_TYPE.MOUSE_POS:
			_vel = self.global_position.direction_to(get_global_mouse_position()) * speed	# 朝鼠标的位置冲刺的向量


func duration_process(delta: float):
	_get_host_node().position += _vel * delta
